// pages/article_new/article_new.js
Page({
	//图片左移
	imgMoveLeft: function(evt){
		var index = evt.target.dataset.index
		if(index > 0){//不是第一张图
			var temp = [].concat(this.data.files)
			temp = this.data.swapArray(temp, index, index-1)
			// console.log(temp);
			this.setData({files: temp})
		}
	},
	//图片删除
	imgDelete: function(evt){
		// evt.target.dataset.index
		//删除
		var temp = this.data.files
		temp.splice(evt.target.dataset.index, 1)
		this.setData({files: [].concat(temp)})
		// console.log(this.data.files)
	},
	//图片右移
	imgMoveRight: function(evt){
		var index = evt.target.dataset.index
		var temp = [].concat(this.data.files)
		if(index < temp.length-1){//不是最后一张图
			temp = this.data.swapArray(temp, index, index+1)
			// console.log(temp);
			this.setData({files: temp})
		}
	},
	// 标题文本框 实时获取
	titleGet: function(evt){
		// console.log(evt.detail.value)
		this.setData({title: evt.detail.value})
	},
	// 段落文本框 实时获取
	contentGet: function(evt){
		// console.log(evt.detail.value, evt.target.dataset.index)
		//临时的 contentlist
		var tempList = [].concat(this.data.contentList)
		//临时的 文本域 内容
		var temp = evt.detail.value
		//组合成 新的内容
		tempList[evt.target.dataset.index] = temp
		//实时改变内容
		this.setData({contentList: [].concat(tempList)})
		// console.log(this.data.contentList)
	},
	// 添加段落
	addNewP: function(evt){
		this.setData({contentList: this.data.contentList.concat("")})
	},
	// 发布
	publish: function(evt){
		var list = {title: "", contentList: [], images: []}
		//标题/图片 不能为空
		if(this.data.title.length>0 && this.data.files.length>0){
			this.setData({pubFlag: true})
			//提示用户
			wx.showToast({
				title: "发布中",
				icon: "loading"
			})
			
			//标题
			list.title = this.data.title
			//段落
			list.contentList = [].concat(this.data.contentList)
			// 图片上传
			// 重新命名 操作的 临时变量
			var tempImages = [].concat(this.data.files)
			// 最终格式化的临时变量
			var formatImages = [].concat(this.data.files);
			//计数
			var count = this.data.files.length
			
			for(var i=0; i<tempImages.length; i++){
				(function(i) {//闭包
					//切割字符串 
					var templist = tempImages[i].split(".")
					//获取后缀名
					var imgType = "." + templist[templist.length-1]
					//重新以时间戳命名文件名称
					var newName = (new Date()).getTime() + "_" + i + imgType
					// console.log(newName)
					
					wx.cloud.uploadFile({
					  cloudPath: "article-image/" + newName,
					  filePath: tempImages[i], // 文件路径
					  success: res => {
					    // console.log(res.fileID)
							formatImages[i] = res.fileID
							//每上传成功一次,计数器 -1
							count--;
							if(count==0){
								// console.log(formatImages);
								//格式化好的 云image地址
								list.images = [].concat(formatImages)
								// console.log(list)
								//插入数据库
								const db = wx.cloud.database()
								wx.cloud.callFunction({
									name: "add",
									data: {
										"title": list.title,
										"contentList": list.contentList,
										"images": list.images,
										"time_pub": (new Date()).getTime(),
										"time_edit": (new Date()).getTime()
									},
									success: res=>{
										// console.log(res)
										var global = getApp()
										//重新返回 admin页面时,  admin页面重新请求云数据
										global.adminRefresh = true;
										//返回上级页面
										wx.navigateBack({
											// 返回的页面数，如果 delta 大于现有页面数，则返回到首页。
										  delta: 1,
											success: ()=>{
												//提示信息
												wx.showToast({
													title: "发布成功",
													icon: "success"
												})
											}
										})
									},
									fail: err=>{
										console.log(err)
									}
								})
								
								// db.collection('article').add({
								//   // data 字段表示需新增的 JSON 数据
								//   data: {
								// 		"title": list.title,
								// 		"contentList": list.contentList,
								// 		"images": list.images
								//   },
								//   success: function(res) {
								//     // res 是一个对象，其中有 _id 字段标记刚创建的记录的 id
								//     // console.log(res)
										
								// 		var global = getApp()
								// 		//重新返回 admin页面时,  admin页面重新请求云数据
								// 		global.adminRefresh = true;
										
								// 		//返回上级页面
								// 		wx.navigateBack({
								// 			// 返回的页面数，如果 delta 大于现有页面数，则返回到首页。
								// 		  delta: 1,
								// 			success: ()=>{
								// 				//提示信息
								// 				wx.showToast({
								// 					title: "发布成功",
								// 					icon: "success"
								// 				})
								// 			}
								// 		})
								//   },
								// 	fail: err =>{//写入数据库出错
								// 		console.log(err)
								// 	}
								// })
								
							}
					  },
					  fail: err => {//上传文件出错
					    // handle error
							console.log(err)
					  }
					})
					
				})(i);
			}
			
		}else{
			wx.showToast({
				title:"标题/图片,不能为空!",
				icon: "none"
			})
		}
		
	},

	/**
	 * 页面的初始数据
	 */
	data: {
		files: [],
		title: "",
		contentList: [""],
		pubFlag: false,
		//数组元素交换
		swapArray: function(arr, index1, index2) {
		   arr[index1] = arr.splice(index2, 1, arr[index1])[0];
		    return arr;
		}
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {

	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {
		//当前页面不允许分享转发
		wx.hideShareMenu()
	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {

	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function () {

	},
	
	
	chooseImage: function(e) {
		var that = this;
		wx.chooseImage({
			// 可以指定是原图还是压缩图，默认二者都有
			// sizeType: ['original', 'compressed'], 
			sizeType: ['compressed'],
			sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
			success: function(res) {
				// 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
				that.setData({
					files: that.data.files.concat(res.tempFilePaths)
				});
			}
		})
	},
	previewImage: function(e) {
		//在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作
		// console.log(e)
		wx.previewImage({
			current: e.currentTarget.id, // 当前显示图片的http链接
			urls: this.data.files // 需要预览的图片http链接列表
		})
	}
	
	
	
})